package JAVAcollectionsanddatastructures.MapandSet;

import java.util.*;

public class TestDemo {
    public static void main1(String[] args) {
        Set<Integer> set = new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
//      set.add(3); 不能够存储重复的元素
        System.out.println(set);

//        set.clear();   清空集合
//        System.out.println(set);

        System.out.println(set.contains(4));

        set.remove(1);//删除
        System.out.println(set);

        System.out.println(set.size());//集合大小

        System.out.println(set.isEmpty());

        //返回迭代器
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }




    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        map.put("abc",3);
        map.put("tca",2);
        map.put("nfc",6);
//      map.put("nfc",7);K如果相同，V值会被覆盖
        map.put(null,null);//hashmap时，k，v都可以插入空，但是treemap时key不能为空，v可以为空
        System.out.println(map);

        int ret = map.get("tca");//通过K获取v的值
        System.out.println(ret);

        System.out.println(map.get("bit2"));//为空

        ////GetOrDefault(): 如果key存在，返回与key所对应的value，如果key不存在，返回一个默认值
        System.out.println(map.getOrDefault("bit3",66));

        //containKey(key)：检测key是否包含在Map中
        System.out.println(map.containsKey("abc"));

        //// containValue(value): 检测value是否包含在Map中
        System.out.println(map.containsValue(6));

        int ret2 = map.remove("tca");//把“tca”删除
        System.out.println(ret2);
        System.out.println(map);

        Set<String> set = map.keySet();//Set集合中存储的是不重复的元素
        System.out.println(set);

        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();//返回所有的K-V映射关系 entrySet(): 将Map中的键值对放在Set中返回了
        for (Map.Entry<String,Integer> x:entrySet) {
            System.out.print(x.getKey()+"->"+x.getValue()+"  ");
        }




    }
}

